\documentclass[a4paper,12pt]{article}
\usepackage{color}
% \usepackage{fancyhdr}
\usepackage[utf8]{inputenc}
% \usepackage{polski}
% \usepackage[polish]{babel}
%\usepackage{a4wide}
% wstawianie obrazkow
%\usepackage{graphicx}
%\usepackage{subfig}

%\usepackage{amsmath}
%\usepackage{amsfonts}
%\usepackage{amsthm}

%\pagestyle{fancy}

%\pagestyle{fancy}

\renewcommand{\headheight}{16pt}

\newcommand{\HRule}{\rule{\linewidth}{0.1mm}}

\begin{document}

%\begin{titlepage}
\begin{center}
%	\textsc{1}\\
%	\textsc{2}\\[4cm]
% 	\HRule\\
%	\HRule \\[2cm]
	\textsc{\Large Distributed Database Systems (WS 11/12) }\\[0.3cm]
	\textsc{\large Assignment 1}\\[1cm]
        Adam Grycner\\
        Szymon Matejczyk\\[1cm]
        \today\\[1cm]
 	\HRule\\
%	\HRule\\[2cm]
	
\end{center}

\section{Exercise 1.1: Discussion}
\subsection{What is a distributed database management system?}
The system which allows managing data and makes distribution transparent.
\subsection{What is the benefit of distribution?}
\begin{itemize}
 \item scalability
 \item lower costs than dedicated mainframes
 \item solution to integrate data from different sources
 \item decentralization
 \item resistance against natural disasters
 \item performance (parallelism and possibility of faster response)
 \item easy implementable hardware changes
\end{itemize}

\subsection{What is the difference between homogeneous and heterogeneous distributed database management systems?}
In Heterogeneous distributed database management systems difference between databases are possible:
\begin{itemize}
 \item different schema,
 \item different query language,
 \item different models (relational, objective, non relational),
 \item and also between DBMS.
\end{itemize}

\subsection{What are the main characteristics of P2P systems?}
\begin{itemize}
 \item all peers/nodes provide equal functionality
 \item peers know only about their direct neighbours
 \item no global knowledge
 \item no central coordination
 \item self-organization (Global behavior is the result from local interaction)
 \item symmetric communication
 \item lack of specialized servers
\end{itemize}
\subsection{Which sharing architectures are usually used in distributed database systems? What distinguishes them?}
\begin{itemize}
 \item Shared everything - multiple processors share a common central memory.
 \item Shared disk systems - each processor has a private memory and use also common shared disk.
 \item Shared nothing - neither memory nor peripheral storage is shared.
\end{itemize}
\subsection{What are advantages and disadvantages of shared nothing in comparison to shared disk architectures?}
\begin{itemize}
 \item Advantages
 \begin{itemize}
  \item No need to synchronize memory access, no problems with race hazard.
  \item More scalable.
  \item Lower costs comparing to mainframes.
 \end{itemize}
 \item Disadvantages
  \begin{itemize}
   \item Hard data exchange.
   \item Only integrated design autonomy and homogeneous schema organization possible.
   \item More coordination is required.
  \end{itemize}
\end{itemize}
\subsection{Group the following systems according to their sharing architecture and give detailed reasons for your choice:}
\begin{enumerate}
 %TODO: reasons
 \item OceanStore - shared nothing \\
 OceanStore servers are independent and geographicaly distributed. They can exchange replicas between each other by network, however they don't physically share any data.
 \item BigTable - shared nothing \\
 BigTable is based on top of Google File System, which use commodity hardware, so disks are not shared. However there also exists a metadata library that is linked to every client hold on master server, which is some kind of shared memmory.
 \item Oracle RAC - shared everything \\
 All Oracle RAC database files reside on cluster-aware shared disks.
 \item Amazon Dynamo - shared nothing \\
 Dynamo is very similar to BigTable, however it does not use any centralized server even for routing. It has 0-hop DHT, which routes a request to a node that is able to answer it.
\end{enumerate}

\end{document}
